﻿//测试游戏的逻辑

#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"

void game()
{
	char board[ROW][COL] = {0};
	
	char ret = 0;
	//初始化棋盘的函数
	printf("棋盘初始化：\n");
	InitBoard(board,ROW,COL);
	
	while(1)
	{
		//打印棋盘
		DisplayBoard(board, ROW, COL);
		//玩家下棋 持*棋
		PlayerMove(board,ROW,COL);
		//判断输赢
		ret = IsWen(board, ROW, COL);
		if (ret != 'C')
		{
			break;
		}

		//打印棋盘
		DisplayBoard(board, ROW, COL);
		//电脑下棋 持#棋
		ComputerMove(board, ROW, COL);
		//判断输赢
		IsWen(board, ROW, COL);
		if (ret != 'C')
		{
			break;
		}
	}
	if (ret == '*')
	{
		printf("玩家赢\n");
	}
	else if (ret == '#')
	{
		printf("电脑赢\n");
	}
	else
	{
		printf("平局\n");
	}
	printf("棋盘终形\n");
	DisplayBoard(board, ROW, COL);
}

int main()
{
	srand((unsigned int)time(NULL)); //设置随机数的生成七点
	int n = 0;
	printf("三子棋游戏\n"); //打印菜单
	printf("规则简介：游戏分为双方对战，双方依次在九宫格棋盘上摆放棋子，率先将自己的三个棋子走成一条线就视为胜利。\n");
	printf("输入1开始游戏，输入0退出游戏：");

	do//根据用户的选择，执行游戏程序或退出程序，输入不合法数字进入重新输入程序
	{
		scanf("%d", &n);
		if (1 == n)
		{
			printf("游戏开始（以左上角棋格为坐标(1 1),向下为X轴，向右为Y轴）\n");
			game(); //将三子棋游戏封装在game函数中实现
			printf("游戏结束，输入1重新开始游戏，输入0退出游戏：");
		}
		else if (0 == n)
		{
			printf("游戏已结束，感谢游玩！");
		}
		else
		{
			printf("输入错误，请从新选择(输入1开始游戏，输入0退出游戏):");
		}
	} while(n);
	return 0;
}